home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 8 / Eagles_Nest_Mac_Collection_Disc_8.TOAST / Developer Tools⁄Additions / VoodooM10d24 / VoodooMonkey 1.0d24 / VoodooMonkey 1.0d24 Changes < prev    next >
Text File  |  1994-07-25  |  17KB  |  450 lines

  1. VoodooMonkey Change History (edited for external release)
  2. Mike Lockwood
  3. July 25, 1994
  4.  
  5.  
  6. 1.0d24 Changes
  7.  
  8.     Added support for the MPW 3.4 Sym file format.
  9.  
  10.     Fixed a bug that occured when reading Sym files created by ILink.  Not all the source
  11.     files were appearing in the browser, due to improper assumptions about the ordering 
  12.     of things in the Sym file.  The fix resulted in making opening of Sym files a bit slower,
  13.     but atleast now VoodooMonkey is more compatible with linkers other than the MPW linker.
  14.     
  15.     Fixed a problem stepping over HLockHi.
  16.     
  17.     Fix Resource Manager reentrancy problem in DebuggerINIT.  ResLoad was mysteriously being
  18.     set to false when stepping over certain toolbox calls.
  19.  
  20.     Disabled multi-threaded debugging features on PowerPC machines running system software
  21.     earlier than final versions of System 7.5 to work around an incompatibility between
  22.     DebuggerINIT and the native Thread Manager.
  23.     
  24.     Hopefully fixed a bug in DebuggerINIT that was causing Paul's machine to crash at startup.
  25.  
  26.      Other DebuggerINIT fixes to fix bugs that Metrowerks discovered.
  27.  
  28.     
  29. 1.0d23 Changes
  30.  
  31.     Put support for the AOCE Process Manager under System 7.1, reversing a change
  32.     in 1.0d22.  This allows DebuggerINIT to be compatible with the Drag Enabler 
  33.     extension for System 7.1, which comes with the Drag Manager and Powerbook File Assistant.
  34.     
  35.     Added support for A/UX 3.0.1 and another A/UX-like operating system.
  36.     
  37.     Fixed a bug that occured when stepping over a function in an application's main
  38.     routine, when the main routine does not have a LINK instruction.
  39.     
  40.     Added support for a non-standard jump table format, which is generated by a certain 
  41.     non-MPW linker.
  42.     
  43.     Fixed a problem that occured when you tried to enter the low-level debugger and 
  44.     the PC is at a breakpoint.  After getting the dialog telling you to clear the
  45.     breakpoint and clearing the breakpoint, the dialog would keep coming up each time 
  46.     you tried to enter the low-level debugger, even though you cleared the breakpoint.
  47.     
  48.  
  49. 1.0d22 Changes
  50.  
  51.     Fixed an incompatibility between System 7 Pro and DebuggerINIT.  
  52.     
  53.     Removed support for AOCE under System 7.1.  Older AOCEs ran on top of System 7.1,
  54.     but it now ships with the System 7.1.1 System file.
  55.     
  56.     Fixed a case sensitivity problem that occured when a Sym file was renamed and
  57.     the "SYM" suffix was not all upper cased.
  58.     
  59.  
  60. 1.0d21 Changes
  61.  
  62.     Fixed an incompatibility between DebuggerINIT and Thread Manager 1.2.  Under
  63.     version 1.2, you could not open a stack crawl for an inactive thread!  
  64.     This is because one of the Thread Manager data structures changed between 
  65.     1.1 and 1.2.  As a result:
  66.     
  67.     ••••• VoodooMonkey now only supports Thread Manager 1.2 !!! •••••
  68.     
  69.     Of course, you can still use VoodooMonkey without the Thread Manager installed.
  70.     If you have Thread Manager 1.1 installed, VoodooMonkey will work, but thread 
  71.     specific features will be disabled
  72.     
  73.     Reenabled the MacApp object inspector.  This had been disabled in previous
  74.     releases, because it required changes in MacApp after 3.0.1.  These changes
  75.     just resurfaced in MacApp 3.1a1.  To use the object inspector, you must build
  76.     your MacApp 3.1 application with the -Inspector option.
  77.     
  78.     Fixed a few crashing bugs.
  79.     
  80.     Fixed a bug that caused a circular display of "Could not complete your request
  81.     because of a program error" dialogs.
  82.     
  83.  
  84. 1.0d20 Changes
  85.  
  86.     Added support for debugging ASLM shared libraries.  I tested this with
  87.     ASLM 1.1b7, but it will probably work with ASLM 1.0 as well.
  88.     
  89.     Variable windows now close automatically when the variable goes out of scope.
  90.     This avoids the slowness that occurs when stepping and out of scope variable
  91.     windows are open.  In SourceBug, variable windows stay open because they can 
  92.     come back in scope when you step back into the function the variable is from, 
  93.     but this never seemed to work in VoodooMonkey.
  94.     
  95.     When stepping, the stack crawl window is no longer brought infront of variable
  96.     windows.  This allows you watch variable values change more easily while you
  97.     are stepping.
  98.     
  99.     Fixed a bug resulting in occasional crashes in the DebuggerINIT when you stop
  100.     debugging a program.
  101.  
  102.     Stripped out references to secret Apple projects from this document, so it
  103.     could be released outside of Apple.
  104.     
  105.  
  106. 1.0d19 Changes
  107.  
  108.     Added support for displaying and editing variables that contain C bitfields.
  109.     
  110.     Removed a bogus DebugStr that said "wrong version of the Thread Manager".  
  111.     This message would sometimes occur if a program crashes badly, and ExitToShell
  112.     (either MacsBug "es" or the VoodooMonkey's Kill command) fails to kill the
  113.     process.
  114.     
  115.  
  116. 1.0d18 Changes
  117.  
  118.     Fixed a freak incompatibility between DebuggerINIT 1.0d17 and the (almost)
  119.     final Thread Manager.  Quitting applications is now safe practice.
  120.     
  121.  
  122. 1.0d17 Changes
  123.     
  124.     Fixed a bug that sometimes prevented disassembling code in the browswer
  125.     for an application that has not been launched yet.
  126.     
  127.     The DebuggerINIT now disables the Thread Manager's scheduler when it is 
  128.     handling events or exceptions.  This is done to avoid some reentrancy 
  129.     problems that might occur, like a preemtive thread creating a new thread
  130.     while the DebuggerINIT is handling a breakpoint.
  131.  
  132.     The "Clear All Breakpoints" command now clears all breakpoints in all 
  133.     programs being debugged.  This decision clears up ambiguity when debugging
  134.     with multiple sym files for one process, or multiple processes with one
  135.     Sym file
  136.     
  137.     VoodooMonkey no longer handles breakpoints or exceptions that occur in 
  138.     preemptive threads.  Breakpoints are ignored, and exceptions go to the 
  139.     low-level debugger.  This is for your own protection, since it is not
  140.     safe to switch to another process in a preemtive thread.
  141.     
  142.     Choosing "Open Process Browser", "Show Registers for…" or 
  143.     "Show FPU Registers for…" no longer creates a second window, if a window
  144.     is already open.
  145.     
  146.     The log window is now removed from the windows menu when it is closed.
  147.  
  148.     The "Show FPU Registers" menu item is now disabled if your machine doesn't
  149.     have an FPU.
  150.     
  151.     VoodooMonkey now prevents you from switching to the low-level debugger if
  152.     the PC is at a breakpoint.  This restriction is added because the DebuggerINIT
  153.     has no way to restore the breakpoint after stepping past it if you are in
  154.     MacsBug or TMON.  The user now must clear or step past the breakpoint before
  155.     switching to the low-level debugger.
  156.     
  157.     VoodooMonkey now immediately clears the stack crawl when the process resumes
  158.     execution.
  159.     
  160.     
  161. 1.0d16 Changes
  162.  
  163.     Revved to another change in the Thread Manager.  
  164.     ••••• VoodooMonkey now requires Thread Manager 1.0b3 or later!!! •••••
  165.  
  166.     VoodooMonkey is now compatible with the special AOCE Process Manager.
  167.     
  168.     You can now copy text from the source or assembler view, or the log window.
  169.  
  170.     The Log Window is now working (it had been in hibernation since the SourceBug days).
  171.     
  172.     Execution timing information is now displayed in the log window, rather
  173.     than a modal dialog.
  174.     
  175.     Fixed a problem handling SysBreakStr and SysBreakFunc when they are called
  176.     by a process that is not being debugged.
  177.     
  178.     Fixed a problem that prevented opening stack crawl windows for some threads
  179.     after targeting an already running threaded application.
  180.  
  181.  
  182. 1.0d15 Changes
  183.  
  184.     Cleaned up and tweaked the source so VoodooMonkey and DebuggerINIT would
  185.     compile with Symantec's SCpp 1.0b2.  However, due to a code generation bug
  186.     I ran into, I'm still building with MPW CFront.
  187.  
  188.  
  189. 1.0d14 Changes
  190.  
  191.     (Hopefully) fixed an occasional crash in the stack crawl for multithreaded
  192.     applications.
  193.  
  194.     Sped up opening views of very large functions.
  195.     
  196.     Moved the grow box back to the corner of the window, instead of inset within
  197.     the bottom right pane.
  198.     
  199.  
  200. 1.0d13 Changes
  201.  
  202.     When you target a process, either with the Target menu command or by 
  203.     entering via TMON, VoodooMonkey will try to open the Sym file for the
  204.     process if it isn't already open.
  205.     
  206.     Fixed a problem that occured when debugging applications without SIZE 
  207.     resources, or didn't have the canBackground bit set.  To avoid the
  208.     flashing effect, VoodooMonkey does not constantly switch the program
  209.     you are debugging to the front when you are stepping.  However, if 
  210.     the program does not background, the program does not wake up, and 
  211.     the step never completes.  Now, if the canBackground is not set, 
  212.     VoodooMonkey will force the program to the front.  
  213.     
  214.     Revved to a recent change in the Thread Manager.  The DebuggerINIT works
  215.     works with Thread Manager 1.0a3 or later.
  216.  
  217.     Fixed some bugs in processing events received from the DebuggerINIT.
  218.     Stack crawl windows now close when the associated thread is terminated,
  219.     and the object inspector is now being notified when objects are freed.
  220.     
  221.     The edit text in the "Evaluate…" no longer contains garbage characters.
  222.     
  223.  
  224. 1.0d12 Changes
  225.  
  226.     Added support for modifying variable values in variable windows.  
  227.     Just click on the variable value (to the right of the "=" sign) to
  228.     edit in place.  The view as options control the format in which the
  229.     variable is edited.  This feature has not been heavily tested yet,
  230.     so you might run into a few kinks here and there.
  231.     
  232.         WARNING:  Beware when editing StringHandles.  VoodooMonkey does not 
  233.         prevent you from changing a string to a longer string, which could 
  234.         result in writing beyond the end of the block and trashing the heap.
  235.     
  236.     The view as menu items now have a check to indicate how the selected node
  237.     in the memory view is being displayed.
  238.     
  239.     Changed the name of the "View as…" menu item to "Coerce to type…" to 
  240.     make it more obvious what this feature does.
  241.     
  242.     Fixed a problem displaying unions contained in structs.  The offset into
  243.     the struct was not being calculated properly, resulting in wrong values.
  244.     
  245.     "Evaluate this…" now has Command-T as a command key equivalent.
  246.     
  247.     Process Browser enhancements:
  248.         • Targeted processes are now shown in bold.  
  249.         • For a suspended process, the current thread is shown in bold.
  250.         • Processes are now sorted by name.
  251.         • Threads are now sorted by ThreadID.
  252.     
  253.     Added a new about box.
  254.     
  255.  
  256. 1.0d11 Changes
  257.  
  258.     The DebuggerINIT is now compatible with the 1.0a3 version of the 
  259.     Thread Manager.  The DebuggerINIT is no longer compatible with versions
  260.     before 1.0a3.
  261.     
  262.     Fixed some bugs related to debugging multi-threaded applications.
  263.     
  264.     The DebuggerINIT now protects itself from bus errors when doing a
  265.     stack crawl.  This reduces the possibility of VoodooMonkey crashing 
  266.     when debugging an application that trashed its own stack.
  267.     
  268.     Added an execution timing feature (thanks to code provided by John Glenn).  
  269.     If the "Time Execution" menu item is turned on in the "Control" menu,
  270.     VoodooMonkey will time execution from the time you "Run" until you hit 
  271.     the next breakpoint.  You can also time execution using the "Go Until" 
  272.     feature, (double clicking on a diamond is "Go Until").  According to 
  273.     John, this feature is accurate to within approximately 20 microseconds.
  274.     Since tracing greatly affects execution time, "Time Execution" does not 
  275.     work with stepping.  It only works with "Run" or "Go Until".
  276.     
  277.     
  278. 1.0d10 Changes
  279.     
  280.     VoodooMonkey now saves window positions for Browser, Stack Crawl, 
  281.     and Process Browser windows.
  282.     
  283.     You can now drag the PC arrow within a function to change the PC.
  284.     VoodooMonkey does not adjust A6 or the SP, so be careful moving the PC
  285.     over instructions that change the stack.
  286.     
  287.     Changing register values in the register window now works properly.
  288.     
  289.     Fixed bug in the stack crawl code that caused sporadic problems when 
  290.     stepping out of a function.
  291.     
  292.     
  293. 1.0d9 Changes
  294.  
  295.     Fixed a few crashing bugs.
  296.     
  297.     invalid pointers now display as "INVALID".    
  298.         
  299.     Menu commands for the register windows are now in the Process menu
  300.     instead of the Edit menustays in Windows menu
  301.     
  302.     You can now evaluate registers from the disassembly view, by selecting
  303.     the register name (like "A4") and selecting the "Evaluate" command.
  304.     The register will appear as a long, but can be coerced to another type 
  305.     using the "View as…" command.
  306.     
  307.     File names are now sorted properly in the browser.
  308.  
  309.     VoodooMonkey's version number now appears in the about box.
  310.  
  311.  
  312. 1.0d8 Changes
  313.  
  314.     Type casting is now available.  You can select any node in a variable window
  315.     and use the "View As…" menu command to coerce it to any type that appears
  316.     in the Sym file.
  317.  
  318.     VoodooMonkey is now able to evaluate most register based variables that
  319.     are in activations further up in the stack crawl.  This is heuristic based,
  320.     so it might not always work properly.
  321.     
  322.     Merged "Launch" and "Resume" menu commands into "Run" (just like SourceBug).  
  323.     "Run" and "Kill" now work from the browser, and stepping works when a variable
  324.     window is in front of the stack crawl.
  325.     
  326.     Fixed a clipping problem in variable windows that occured when the value of
  327.     the variable changed or a "View As" command was done by the user.
  328.     
  329.     Variable windows now display "out of scope" when you step out of the
  330.     scope the variable is declared in.  If you go back in that scope, 
  331.     the window will start displaying the variable again.
  332.     
  333.     Fixed a bug that caused autotargeting not to work for MacApp programs.
  334.  
  335.  
  336. 1.0d7 Changes
  337.     
  338.     VoodooMonkey now automatically targets running processes if it hits a breakpoint
  339.     in a non-targeted process.  Now to target a running app, just open the Sym file 
  340.     and set some breakpoints.  The process will be targeted when the breakpoint is hit,
  341.     so you no longer have to go to the Process Browser to target the process.
  342.     
  343.     Auto targeting also works if you enter VoodooMonkey from TMON, using the 
  344.     "SourceBug macro for TMON Professional" that ships with SourceBug.
  345.     
  346.     Kludged around a problem in CFront that caused some files to be displayed in the 
  347.     browser as "C".
  348.         
  349.     Fixed a problem that occured when debugging standalone code resources in 24 bit addressing.
  350.     
  351.     C unions and Pascal variant records are now displayed properly.
  352.     
  353.     Pascal subrange variables are now displayed properly.
  354.     
  355.     Enumerated types are now displayed properly.  However, the MPW C compiler doesn't
  356.     generate symbolics for enums, so you will only notice this improvement in Pascal.
  357.     
  358.     Arrays are now displayed properly.  You can expand and collapse arrays using the
  359.     outline triangles, and you can now display arrays of structs, or arrays of other
  360.     complex types.
  361.     
  362.  
  363. 1.0d6 Changes
  364.     
  365.     VoodooMonkey no longer asks you for a the executable, if it can find it in the
  366.     same directory as the Sym file.  If your Sym file is called Banana.SYM, 
  367.     VoodooMonkey will look for Banana in the same directory.  If it is not found, 
  368.     VoodooMonkey will ask for the location of Banana.
  369.     
  370.     Fixed a lot of memory leaks.
  371.     
  372.     Fixed a bug in the MPW Unmangle.o library that caused VoodooMonkey to go into an 
  373.     infinite loop when unmangling the names of certain functions.
  374.     
  375.     Fixed a bug in the stack crawl that occured when debugging recursive functions.
  376.     The pc was not properly updating when changing between activations of the same
  377.     recursive function.
  378.     
  379.     Fixed a bug that caused 1 or 2 byte register based variables to display the 
  380.     wrong value.
  381.  
  382.     The horizontal scroll bars in the source code panes of the browser and stack crawl
  383.     windows now work.
  384.     
  385.     Breakpoints no longer show up as "TRAP #5" in the disassembly.
  386.     
  387.     The disassembler now can disassemble routines in segments that aren't loaded or in 
  388.     applications that are not running.  ReadPartialResource is used, so the disassembler
  389.     does not affect the heap of the program you are debugging.
  390.     
  391.     Fixed the Untarget <process> command.
  392.     
  393.     Closing the stack crawl for a running process now untargets the process.  
  394.     Closing the stack crawl for a suspended process (as before) kills the process,
  395.     after asking "are you sure…".
  396.     For threaded programs, only closing the stack crawl for the main thread causes the
  397.     process to be untargeted or killed.
  398.  
  399.  
  400. 1.0d5 Changes
  401.  
  402.     Fixed a bug in runtime typing of HandleObjects in programs that have both
  403.     HandleObjects and PascalObjects.
  404.     
  405.  
  406. 1.0d4 Changes
  407.     
  408.     Put in support for dynamically typing PascalObjects at runtime.  
  409.     
  410.     VoodooMonkey now fixes up null type references in the type information.  
  411.     For example, sometimes when viewing a struct that has a RgnHandle as a field,
  412.     expanding or double clicking on the RgnHandle didn't work.  Now it does!
  413.     
  414.     Launching an application from the browser after it was already running used
  415.     to confuse VoodooMonkey.  Now, Launch is grayed out if the application 
  416.     is already running.
  417.     
  418.     Fixed a bug that caused a crash when closing the browser with a
  419.     variable window open.
  420.  
  421. 1.0d3 Changes
  422.  
  423.     Added a heuristic for properly evaluating handle based objects.  When
  424.     you forward declare a class in C++, CFront does not know the class is
  425.     handle based, and generates symbolics for a pointer based class.  
  426.     A heuristic is now used to detect that a pointer to a record is really a
  427.     handle, and an extra dereference is added.
  428.     
  429.     Fixed a bug that prevented you from targeting a running process.  
  430.     (To target a running process, open the Sym file for the process.
  431.     Then select the process in the Process Browser and either double-click
  432.     on it, or choose "Target <process name>" in the "Process" menu.
  433.     
  434.     Added a cheesy "View As" mechanism, similar to SourceBug.
  435.     
  436.     Fixed a bug that occured if you closed the browser before the stack crawl
  437.     window.
  438.     
  439.     Rebuilt the DebuggerINIT with newer Thread Manager headers.  This fixed
  440.     a few problems debugging threads.
  441.  
  442.  
  443. 1.0d2 Changes
  444.  
  445.     Fixed some annoying bugs
  446.     
  447.     Disabled some features that weren't quite working
  448.     
  449.     Added a "Windows" menu
  450.